import sqlite3

# 1. 连接数据库（如果文件不存在则自动创建）
# 数据库文件将保存在当前目录，名为 "test_database.db"
conn = sqlite3.connect('test_database.db')

# 2. 创建游标对象（用于执行 SQL 语句）
cursor = conn.cursor()

try:
    insert_user_sql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)"
    """
    单行插入
    cursor.execute(需要执行sql语句, 需要插入数据)
    """
    cursor.execute(insert_user_sql, ("Alice", 25, "alice@example.com"))
    # 使用 列表 存储人员数据
    user_list = [("Bob", 30, "bob@example.com"), ("张三", 40, "zhangsan@example.com")]
    # 批量插入数据
    cursor.executemany(insert_user_sql, user_list)

    # 提交事务（插入/更新/删除需要提交）
    conn.commit()
    print("数据插入成功")
except sqlite3.IntegrityError:
    print("邮箱已存在，插入失败")
except sqlite3.Error as e:
    # 出错时回滚事务
    conn.rollback()
    print(f"插入数据失败：{e}")

# 4.关闭游标连接
cursor.close()
# 5.关闭数据库连接
conn.close()